<?php
declare (strict_types = 1);

namespace app\adminapi\controller;

use think\Request;
use app\common\model\Type as TypeModel;
class Type
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        //

    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {

    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //接参数，验证数据，验证不为空的
        $data = [
            'type_name' => '手机',
            'spec' => [
                ['name' => '颜色', 'sort' => 50, 'value'=>['黑色', '白色', '金色']],
                ['name' => '内存', 'sort' => 50, 'value'=>['64G', '128G', '256G']],
            ],
            'attr' => [
                ['name' => '毛重', 'sort'=>50, 'value' => []],
                ['name' => '产地', 'sort'=>50, 'value' => ['进口', '国产']],
            ]
        ];
        //调用逻辑处理层的方法处理
       return \app\common\business\Type::Add($data);
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //商品详情  type_id=16
        $data=TypeModel::with(['specs','specs.SpecValues','attrs'])->find($id)->toArray();
        dd($data);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
        if(!is_numeric($id)){
            return fail('参数格式不正确');
        }
        //看这个商品类型是否还存在
        $res=\app\common\model\Goods::where('type_id',$id)->find();//用find，快速，并且也代表着有一条就算
        if($res){
            return fail('商品类型下有商品，不能删除');
        }
        return \app\common\business\Type::delete($id);
    }


    //测试四表的关联关系
    public function test(){
        //type与spec
       // $data=\app\common\model\Type::with('specs')->paginate(3)->toArray();

        //type与spec——value
        //$data=\app\common\model\Type::with('values')->paginate(3)->toArray();

        //type与attr
        //$data=\app\common\model\Type::with('attrs')->paginate(3)->toArray();

        //spec与spec——value
       //$data=\app\common\model\Spec::with('SpecValues')->paginate(3)->toArray();

       $data=TypeModel::with(['specs','specs.SpecValues'])->paginate(3)->toArray();
        dd($data);
        //

    }
}
